package com.ruoyi.system.service.impl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.ruoyi.common.constant.UserConstants;
import com.ruoyi.common.support.Convert;
import com.ruoyi.system.domain.HatchetSystemConfig;
import com.ruoyi.system.mapper.HatchetSystemConfigMapper;
import com.ruoyi.system.service.IHatchetSystemConfigService;

/**
 * 系统配置 服务层实现
 * 
 * @author ruoyi
 * @date 2019-03-14
 */
@Service
public class HatchetSystemConfigServiceImpl implements IHatchetSystemConfigService 
{
	@Autowired
	private HatchetSystemConfigMapper hatchetSystemConfigMapper;

	/**
     * 查询系统配置信息
     * 
     * @param id 系统配置ID
     * @return 系统配置信息
     */
    @Override
	public HatchetSystemConfig selectHatchetSystemConfigById(String id)
	{
	    return hatchetSystemConfigMapper.selectHatchetSystemConfigById(id);
	}
	
	/**
     * 查询系统配置列表
     * 
     * @param hatchetSystemConfig 系统配置信息
     * @return 系统配置集合
     */
	@Override
	public List<HatchetSystemConfig> selectHatchetSystemConfigList(HatchetSystemConfig hatchetSystemConfig)
	{
	    return hatchetSystemConfigMapper.selectHatchetSystemConfigList(hatchetSystemConfig);
	}
	
    /**
     * 新增系统配置
     * 
     * @param hatchetSystemConfig 系统配置信息
     * @return 结果
     */
	@Override
	public int insertHatchetSystemConfig(HatchetSystemConfig hatchetSystemConfig)
	{
	    return hatchetSystemConfigMapper.insertHatchetSystemConfig(hatchetSystemConfig);
	}
	
	/**
     * 修改系统配置
     * 
     * @param hatchetSystemConfig 系统配置信息
     * @return 结果
     */
	@Override
	public int updateHatchetSystemConfig(HatchetSystemConfig hatchetSystemConfig)
	{
	    return hatchetSystemConfigMapper.updateHatchetSystemConfig(hatchetSystemConfig);
	}

	/**
     * 删除系统配置对象
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
	@Override
	public int deleteHatchetSystemConfigByIds(String ids)
	{
		return hatchetSystemConfigMapper.deleteHatchetSystemConfigByIds(Convert.toStrArray(ids));
	}

	/**
	   * 校验配置代码唯一
	   * @param configCode
	   * @return
	   */
	public String checkConfigCodeUnique(String configCode) {
	  int count = hatchetSystemConfigMapper.checkLoginNameUnique(configCode);
	  if (count > 0)
        {
            return UserConstants.USER_NAME_NOT_UNIQUE;//不唯一
        }
        return UserConstants.USER_NAME_UNIQUE;//唯一
	}
	
	/**
     * 查询系统配置列表
     * 
     * @param code
     * @return 配置的值
     */
	public String selectValueByCode(String code) {
		HatchetSystemConfig systemConfig = new HatchetSystemConfig();
		systemConfig.setConfigCode(code);
	    List<HatchetSystemConfig> systemConfigList = hatchetSystemConfigMapper.selectHatchetSystemConfigList(systemConfig);
	   if (systemConfigList != null && systemConfigList.size()>0) {
		   return systemConfigList.get(0).getConfigValue();
	   	}
	    return null;
	}
	
}
